package com.shuda.business.user.service;

import com.shuda.business.user.dto.LoginDTO;
import com.shuda.business.user.dto.RegisterDTO;
import com.shuda.business.user.entity.UserEntity;
import com.shuda.common.dto.ChangePasswordDTO;
import com.shuda.common.dto.UserProfileDTO;
import com.shuda.common.result.Result;

import java.util.Map;

/**
 * 认证服务接口
 */
public interface AuthService {

    /**
     * 用户登录
     */
    Map<String, Object> login(LoginDTO loginDTO);

    /**
     * 用户注册
     */
    Result<String> register(RegisterDTO registerDTO);

    /**
     * 用户退出登录
     */
    void logout();

    /**
     * 刷新token
     */
    Map<String, Object> refreshToken(String refreshToken);

    /**
     * 获取用户信息
     */
    UserEntity getUserInfo();

    /**
     * 获取用户个人信息
     */
    UserProfileDTO getProfile();

    /**
     * 更新用户个人信息
     */
    void updateProfile(UserProfileDTO profileDTO);

    /**
     * 修改密码
     */
    void changePassword(ChangePasswordDTO changePasswordDTO);
}